// 导入 request 请求工具类
import {
  requestUtil
} from '../../utils/requestUtil.js';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    addressList: []
  },

  /**
   * 生命周期函数 -- 监听页面加载
   */
  onLoad(options) {
    const app = getApp();
    if (!app.checkLoginStatus()) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    this.getAddressList();
  },

  getAddressList: function () {
    const app = getApp();
    let openid = wx.getStorageSync('openid');
    if (!openid) {
      openid = app.globalData.openid;
    }
    if (!openid) {
      wx.showToast({
        title: '获取用户标识失败，请重新登录',
        icon: 'none'
      });
      return;
    }
    requestUtil({
      url: '/address/list/' + openid,
      method: 'GET'
    }).then(result => {
      console.log('获取地址列表结果:', result);
      const processedAddressList = result.data.map(item => {
        if (item.userName) {
          item.userName = item.userName.replace(/&nbsp;/g, ' ');
        }
        return item;
      });
      this.setData({
        addressList: processedAddressList
      });
    }).catch(err => {
      console.log('获取地址列表出错:', err);
      wx.showToast({
        title: '获取地址列表失败',
        icon: 'none'
      });
    });
  },

  navigateToAddAddressPage: function () {
    wx.navigateTo({
      url: '/pages/address/edit'
    });
  },

  editAddress: function (e) {
    const addressId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/address/edit?id=${addressId}`
    });
  },

  deleteAddress: function (e) {
    const addressId = e.currentTarget.dataset.id;
    const app = getApp();
    let openid = wx.getStorageSync('openid');
    if (!openid) {
      openid = app.globalData.openid;
    }
    if (!openid) {
      wx.showToast({
        title: '获取用户标识失败，请重新登录',
        icon: 'none'
      });
      return;
    }
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这个地址吗？',
      success: (res) => {
        if (res.confirm) {
          requestUtil({
            url: `/address/delete/${addressId}`,
            method: 'GET'
          }).then(() => {
            wx.showToast({
              title: '删除成功',
              icon: 'success'
            });
            this.getAddressList();
          }).catch((err) => {
            console.log('删除地址出错:', err);
            wx.showToast({
              title: '删除失败',
              icon: 'none'
            });
          });
        }
      }
    });
  },

  // 修改 selectAddress 方法，去掉确认对话框
  selectAddress: function (e) {
    const selectedAddress = e.currentTarget.dataset.item;
    console.log('即将存储的 selectedAddress:', selectedAddress);
    // 将选中的地址存储到缓存
    wx.setStorageSync('address', selectedAddress);
    const addressInCache = wx.getStorageSync('address');
    console.log('addressInCache 的数据类型:', typeof addressInCache);
    console.log('存储到缓存中的 address 数据:', addressInCache);
    // 跳转到订单确认页面
    wx.navigateTo({
        url: '/pages/pay/index'
    });
},

  /**
   * 生命周期函数 -- 监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数 -- 监听页面显示
   */
  onShow() {
    this.getAddressList();
    const addressInCache = wx.getStorageSync('address');
    console.log('addressInCache 的数据类型:', typeof addressInCache);
    console.log('页面显示时缓存中的 address 数据:', addressInCache);
  },

  /**
   * 生命周期函数 -- 监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数 -- 监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数 -- 监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
});